package com.sjqi.demo.entity;

import com.sjqi.demo.constant.InvoiceStatus;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 来自生产环境的样例
 */
@Data
public class InvoiceEntity extends BaseEntity {

    /**
     * 供应商id
     */
    private Long popId;

    /**
     * 发票号
     */
    private String invoiceNo;

    /**
     * 发票总金额 = 发票面额+发票税额 or
     * <p>
     * 发票总金额 = 正向金额-逆向金额
     */
    private BigDecimal invoiceTotalMoney;
    /**
     * 发票金额(不含税)
     */
    private BigDecimal invoiceMoney;

    /**
     * 发票正向金额
     */
    private BigDecimal invoiceNoDecreaseMoney;
    /**
     * 发票逆向
     */
    private BigDecimal invoiceDecreaseMoney;

    /**
     * 发票图片id
     */
    private String invoicePicId;

    /**
     * 发票pdf文件路径
     */
    private String invoicePdfId;

    /**
     * 发票说明
     */
    private String invoiceRemark;

    /**
     * 发票状态，-1.有问题发票，1.新创建发票，2.已邮寄发票，3，已收到发票，4，已处理。
     */
    private InvoiceStatus invoiceStatus;

    /**
     * 失败处理状态，0，未处理，1，已处理
     */
    private Integer failedStatus;

    /**
     * 发票问题原因
     */
    private String checkFailedReason;

    /**
     * 失败发票图片id
     */
    private String checkFailedPicId;

    /**
     * 发票审核人
     */
    private Long checkUserId;

    /**
     * 发票审核时间
     */
    private Integer checkTime;

    /**
     * 创建人id
     */
    private Long userId;

    /**
     * 申请流水id
     */
    private Long applyId;

    /**
     * 城市id
     */
    private Integer cityId;

    /**
     * 发票代码
     */
    private String invoiceCode;

    /**
     * 发票税额
     */

    private BigDecimal invoiceTax;
    /**
     * 发票日期
     */
    private Integer invoiceDate;

    private Integer invoiceType;


    private String drawer;

    /**
     * 销方税号（纳税人识别号）
     */
    private String taxpayerIC;

    /**
     * 发票来源：1表示自开，2：百望 3:百旺二期
     */
    private Integer sourceCode;

    /**
     * 开票人（操作人）
     */
    private String drawerName;

    //-----二期新增字段----
    /**
     * 校验码
     */
    private String invoiceCheckCode;

    /**
     * 电子发票下载地址
     */
    private String eInvoiceUrl;

    /**
     * 商户订单号
     */
    private String mallOrderId;

    /**
     * 推送过来的发票类型 0正数票，1负数票
     */
    private int invoiceTwophaseType;

    /**
     * 百旺推送的开具状态：2-成功，3-驳回，10-异常
     */
    private String invoiceIssueStatus;

    /**
     * 异常错误码
     */
    private String errorCode;

    /**
     * （异常）请求开票日期
     */
    private Integer invoiceReqDate = 0;

    /**
     * 流水号
     */
    private String serialNo;

    /**
     * 税号
     */
    private String taxNo;

    /**
     * invoiceStatus转换
     */
    private Integer invoiceStatusPaseInt;

    private CompanyEntity companyEntity;
}